![]() |
![]() ![]() |
![]() |
![]()
Post
#361
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 8.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym się dowiedzieć czy mając włączone magic_quotes na serwerze i zapytanie sformułowane w taki sposób: "SELECT * FROM tabela WHERE id='$id'" jest możliwość wstrzyknięcia niechcianego zapytania (brak jakiejkolwiek filtracji danych)? Jeżeli tak (a zapewne tak jest) to w jaki sposób atakujący może tego dokonać?
Pozdrawiam |
|
|
![]()
Post
#362
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 39 Dołączył: 6.12.2010 Skąd: localhost Ostrzeżenie: (0%) ![]() ![]() |
magic_quotes to najgorsze co może być.. Wyłącz to i napisz swoją walidację a nie jakieś cuda (IMG:style_emoticons/default/smile.gif) Nie jestem pewien ale chyba da się bez problemów włamać nawet z magic_ - Jeśli się mylę, poprawcie (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#363
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 8.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie niby mówi się, że magic_quotes jest ble i fuj, ale szukałem sposobów na jego obejście no i jakoś nie znalazłem (być może źle po prostu szukałem), więc jak na razie jedyne zagrożenie które dostrzegam w jego użytkowaniu to po prostu problemy kiedy swoją aplikacje będziemy musieli przenieś na serwer na którym magic_quotes jest wyłączone.
Pozdrawiam, mam nadzieję że ktoś będzie potrafił mnie uświadomić dlaczego magic_quotes to zło |
|
|
![]()
Post
#364
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat kiedy swoją aplikacje będziemy musieli przenieś na serwer na którym magic_quotes jest wyłączone. Albo gdy będziesz płakać, gdy w końcu z PHP to wyrzucą (bo obiło mi się o uszy, że są takie plany). Cytat Pozdrawiam, mam nadzieję że ktoś będzie potrafił mnie uświadomić dlaczego magic_quotes to zło http://en.wikipedia.org/wiki/Magic_quotes Mam nadzieję, że ludzie kiedyś nauczą się korzystać z wyszukiwarek i tego, co mają pod nosem. |
|
|
![]()
Post
#365
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 15.10.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym dowiedzieć się czy używanie PDO i metod prepare(), execute() jest bezpieczne z punktu widzenia SQL Injection? Czy mimo to warto używać add/stripslashes
|
|
|
![]()
Post
#366
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytałem cały temat i zastanawia mnie dlaczego nie pojawiło się filtrowanie $_GET, $_POST etc. przy pomocy array_map funkcją htmlspecialchars, trim i mysql_real_escape_string. Takie filtrowanie jest bardzo skuteczne i nawet jeśli zapytanie do bazy jest źle skonstruowane i nie filtrowane, takie jak poniżej to potencjalny hacker nic nie zdziała.
Oczywiście dla pewności należy przy tym pamiętać o poprawnych typach kolumn w SQL i mimo wszystko rzutowaniu na (int), sprawdzaniu długości (substr) i dla szerszej ochrony wykrywanie przedwcześnie zalogowanych kont, które szukają dziur. Poza tematem via msg, to chętnie wymienię się informacją jak ominąć filtr mysql_real_escape_string za ominięcie is_numeric - wiem że się da. |
|
|
![]()
Post
#367
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
O ile w normalnych warunkach wszystko jest ok to jeżeli sprzedajemy aplikację chinczykowi to może być już problem. Zróbcie sobie bazę z kodowaniem i sprawdzcie taki kodzik:
Teraz w adresie wystarczy podać np. Kod http://localhost/testsql.php?login=admin%f4%22+OR+1=1+--&password=qwerty Efekt:
Sytuacja wygląda analogicznie z mysql_real_escape_string() - w koncu to prawie identyczna funkcja jak addslashes @fr33d0m: jeślichcesz, to mogę wysłać Ci przez msg listę kodowań i wytłumaczenie dlaczego jest tak a nie inaczej. Pozdro Ten post edytował SHiP 13.10.2011, 12:15:47 |
|
|
![]()
Post
#368
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie zagłębiam się aż tak w inne kodowanie niż europejskie bo jest mi to nie potrzebne. Aby zapobiec i zrozumieć SQL Injection/Insertion trzeba zawężyć krąg kodowań do naszych rodzimych, które są często używane bo nowym userom przez przykład kodowania z Chin można tylko w głowie zamieszać.
---edit: @SHiP Wierzę na słowo, że przy zabezpieczeniu kodowań wszystkich znaków świata trzeba mieć głowę na karku. (IMG:style_emoticons/default/smile.gif) Potrafię pominąć mysql_real_escape_string. A swoją drogą to z matematyki miałem 5 więc doskonale wiem dlaczego jest tak, jak jest w kodowaniu Chińskim. (IMG:style_emoticons/default/wink.gif) Ten post edytował fr33d0m 13.10.2011, 12:40:22 |
|
|
![]()
Post
#369
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Chodziło mi o przedstawienie przykładu, który pokaże, że używanie metod typu addshasles() to pomyłka. Problem chińskiego kodowania nie jest trywialny. Pisząc dużą aplikację(np. taki wordpress) należy wziąć pod uwagę, że będą z niej korzystać Azjaci z kodowaniami bogatymi w różne fajne znaczki.
PS: co do Twojej propozycji. Umiesz złamać mysql_real_escape_string() czy is_numeric() ? Bo nie wiem co, za co chcesz się wymieniać |
|
|
![]()
Post
#370
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#371
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
A to akurat nieprawda, bo mysql_real_escape_string() zwraca uwagę na kodowanie A tu też nie do końca jest pięknie z tym kodowaniem mysql_real_escape_string(); (IMG:style_emoticons/default/biggrin.gif) http://forum.php.pl/index.php?s=&showt...st&p=911748 |
|
|
![]()
Post
#372
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A tu też nie do końca jest pięknie z tym kodowaniem mysql_real_escape_string(); (IMG:style_emoticons/default/biggrin.gif) http://forum.php.pl/index.php?s=&showt...st&p=911748 No akurat jest, bo na MySQL5 (chyba 5.0.23, nie szukałem) to już nie działa. A jak ktoś ma zamiar korzystać z MySQL4 to nie ma po co się babrać z omijaniem filtrów bo jest kilka innych exploitów na tak starą wersję pozwalającą na zdalne wykonanie kodu. Ten post edytował pyro 5.11.2011, 20:49:06 |
|
|
![]()
Post
#373
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 1 Dołączył: 9.09.2011 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jest prosty sposób na szybkie wyczyszczenie danych w razie włączonych magic_quotes (w wypadku gdy nie możemy go wyłączyć).
|
|
|
![]()
Post
#374
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
No akurat jest, bo na MySQL5 (chyba 5.0.23, nie szukałem) to już nie działa. A jak ktoś ma zamiar korzystać z MySQL4 to nie ma po co się babrać z omijaniem filtrów bo jest kilka innych exploitów na tak starą wersję pozwalającą na zdalne wykonanie kodu. Nie chcę tutaj polemizować na ten temat bo nie mogę znaleźć info. na ten temat. Masz jakieś linki ? |
|
|
![]()
Post
#375
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#376
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 1 Dołączył: 22.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Temt SQL Injection/Insertion nigdy mnie nie dotyczyl ale jesli nad tym sie zastanowic to porzadna kontrola tresci zalatwia sprawe w 70% a jak to komus to nie wystarcza to tak jak na ssl kazda strona ma swoj super tajny klucz to niech i akcja na bazie bedzie miala swoj super tajny klucz. Przed akcja z baza jakies autorskie fikumiku na tresci a podczas odczytywania mikufiku i pozamiatane. Wtedy nawet przegladanie phpMyAdmin nikomu nic nie da co prawda bedze mogl w ramach akcji protestu skasowac cala baze danych ale od czego jest backup.
|
|
|
![]()
Post
#377
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
takie pytanie - dane filtrować mysql_real_escape_string przed dodaniem do bazy czy zaraz po odebrania formularza? chodzi oto, że między tymi akcjami mam jeszcze sprawdzanie czy coś zostało podane, weryfikacja np meila i inne weryfikacje. stąd to pytanie.
bo ocenie robię to po odebraniu formularza:
|
|
|
![]()
Post
#378
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przeczytaj do czego służy mysql_real_escape_string a poznasz odpowiedź na swoje pytanie.
|
|
|
![]()
Post
#379
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 22.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Użycie PDO w następujący sposób
jest wystarczającym zabezpieczeniem? |
|
|
![]()
Post
#380
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Tak.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 19:50 |